The power of internet protocol (IP) networks, such as the Internet, is their connectionless method of transporting data from source to destination. The nature of this connectionless transport is embodied in the “forward and forget” paradigm of the IP network's most powerful tool: the router. However, this greatest strength is also the IP network's greatest weakness. The “forward and forget” philosophy inherent in the network insures that there is no information about any data packet, and consequently any session, or flow, maintained by the network. Without information about packets or flows that the network could use to treat one packet or flow differently than the rest, the network must treat every packet and flow the same, resulting in the best efforts form of quality of service, as anyone who has ever used the Internet is familiar with.
To avoid the “forward and forget” paradigm, the network needs to be able to learn and maintain knowledge of the characteristics of the data packets and flows passing through it. Additionally, the network should learn and remember the events that are contained within the contents of those data packets or flows. With this knowledge, the network would have the information necessary to distinguish between packets and flows, and give those with particular characteristics or events treatment different from the other packets in the network. For example, if the network was able to recognize a streaming video flow, the network could assign a higher quality of service to that flow to ensure that it passed through the network in the most efficient fashion. Similarly, if the network could recognize data packets from a user who had paid a premium for better service, the network could ensure that those data packets received higher quality of service than packets from users who had not paid the premium. Further, if the network could recognize events within flows, such as an email infected with a virus, the network could act on that information and discard the email or strip the infected attachment.
To take the learn and remember paradigm one step further, many types of traffic passing over networks are formed of bi-directional flows, that is related information being exchanged between two parties. Voice over IP (“VoIP”) calls, web browsing, streaming video, and other traffic require information to be exchanged by both parties involved in the communication. For example, VoIP calls require that call set up information be exchanged and that bearer channels in each direction be established. Web browsing and streaming video involve a request from a user in one direction, followed by a content stream from the source in the other direction. As can be imagined, new functionality and efficiencies could be obtained if characteristics and events found in one direction of the flow could be used to predict and/or modify the return flow.
Accordingly, what is needed is a network processing system that can act as a learning state machine, and can additionally act to predict and/or alter one direction of a bi-directional flow based on characteristics or events learned form the corresponding flow. The network processing system is able to examine data packets and flows and learn characteristics about and events in those data packets and flows, recognize those flows that are bi-directional, and predict or alter the return flow based on the characteristics and events learned from the original flow.